using System;

using OST.Shared.SharedTypes;

namespace OST.Shared.Interfaces
{
    /// <summary>
    /// represents the interface to control the sun-tracking
    /// </summary>
    public interface ITracker : INotifyPropertyChanged
    {
        /// <summary>
        /// starts the sun-tracking
        /// </summary>
        void Start();

        /// <summary>
        /// stops the sun-tracking
        /// </summary>
        void Stop();

        /// <summary>
        /// flag, which determines, if the tracking is active/ started
        /// </summary>
        bool IsStarted { get; }

        /// <summary>
        /// the actual tracking-day <see cref="TrackingDay"/>
        /// </summary>
        TrackingDay Day { get; }

        /// <summary>
        /// the next <see cref=" TrackingAction"/>
        /// </summary>
        TrackingAction NextAction { get;  }

        /// <summary>
        /// flag, which determines, if the tracking-wind-alarm is currently acitve or not
        /// </summary>
        bool IsWindAlarmActive{ get; }

    }   
}
